home *** CD-ROM | disk | FTP | other *** search
Wrap
GW-BASIC | 1984-04-24 | 11.8 KB | 415 lines
3 LPVST=60*VAL(MID$(TIME$,4))+VAL(MID$(TIME$,7)):RPVST=LPVST:UPVST=LPVST:RPVST=LPVST 4 A$="s=5:goto 1180"+CHR$(13) 5 KEY 1,A$:KEY 2,A$:KEY 3,A$:KEY 4,A$:KEY 5,A$:KEY 6,A$:KEY 7,"":KEY 8,"":KEY 9,"":KEY 10,"" 6 DC=0 10 DEFINT A-Z 20 KEY OFF 30 CLS 40 TEM=255:FLAG=0:NEWF=0:RF=0 50 AMAP=133 60 LM=1:RM=80:TAB=5 70 DIM FORM$(AMAP),XX(AMAP) 80 FOR X=1 TO AMAP 90 FORM$(X)=STRING$(100,32) 95 XX(X)=X 100 MID$(FORM$(X),80,2)=CHR$(2)+CHR$(1) 110 NEXT 120 EP=67 130 FORM$(EP)=STRING$(79,"-") 140 ON ERROR GOTO 160 150 GOTO 165 160 IF ERR=53 THEN LOCATE 10,25:PRINT "no text files present";:RESUME 180 165 LOCATE 1,1:PRINT "..........................";:COLOR 8,7:PRINT "text files on this disk";:COLOR 7,0:PRINT "............................."; 170 LOCATE 2,1:FILES "*.txt" 171 FOR X=2 TO 18 172 FOR Y=1 TO 66 STEP 13 173 LOCATE X,Y+8:PRINT " "; 174 NEXT Y 175 NEXT X 176 LOCATE 19,1:PRINT "............................................................................."; 180 LOCATE 20,25:INPUT "which text file ";FILE$ 185 IF FILE$="" THEN RUN 186 IF INSTR(FILE$,".") >0 THEN 180 187 IF LEN(FILE$)>8 THEN BFILE$=MID$(FILE$,1,8):FILE$=BFILE$ 190 FILE$=FILE$+".TXT" 200 BFILE$=FILE$ 201 FOR X=1 TO LEN(FILE$)-4 202 IF ASC(MID$(FILE$,X,1))=32 THEN 180 203 NEXT X 205 IF MID$(FILE$,1,4)="HELP" OR MID$(FILE$,1,6)="SECRET" THEN LM=1:RM=2:GOTO 230 225 LM=1:RM=80:TB=5 230 GOSUB 2230 250 ON ERROR GOTO 510 280 LOCATE 12,30:COLOR 23,0:PRINT "loading the document":COLOR 7,0 290 GOTO 320 300 LM=1:RESUME 220 310 RM=80:RESUME 225 315 TB=5:RESUME 230 320 OPEN FILE$ FOR INPUT AS #1 330 INPUT #1, LE 340 IF LE>AMAP THEN LE=AMAP 350 FOR X=1 TO LE 355 IF X=EP THEN INPUT #1,Q$:GOTO 370 360 LINE INPUT #1,Q$ 361 IF LEN(Q$)<80 THEN Q$=Q$+" " 362 IF MID$(Q$,1,1)=CHR$(2) THEN 370 365 MID$(FORM$(X),1,80)=Q$ 370 NEXT 380 ON ERROR GOTO 410 385 IF MID$(FILE$,1,4)="help" OR MID$(FILE$,1,6)="secret" THEN TB=1:GOTO 420 390 INPUT #1, LM,RM,TB 400 GOTO 420 410 ON ERROR GOTO 0:RESUME 420 420 CLOSE #1 425 IF MID$(FILE$,1,4)="help" OR MID$(FILE$,1,6)="secret" THEN 500 430 M=INSTR(FILE$,"TXT") 440 MID$(BFILE$,M,3)="BAK" 450 NEWF=1 500 CLS:S=0 510 IF ERR=53 THEN CLOSE #1:LOCATE 23,20:PRINT "must be a new file......";:S=1:RESUME 520 520 ON ERROR GOTO 0 530 T=1:B=24 540 IF S=0 THEN GOTO 1190 550 CLS 560 V=1:H=LM:TEM=255 570 A$=" " 580 S=1:TEM$=STRING$(255,32) 590 LOCATE 25,42:PRINT " 2 ";:COLOR 8,7:PRINT "save";:COLOR 7,0:PRINT " 4 ";:COLOR 8,7:PRINT "quit";:COLOR 7,0:PRINT " 6 ";:COLOR 8,7:PRINT "alt";:COLOR 7,0:PRINT " 8 ";:COLOR 8,7:PRINT "reform";:COLOR 7,0 600 PRINT " 10 ";:COLOR 8,7:PRINT "print";:COLOR 7,0 601 LOCATE 25,1:PRINT "1 ";:COLOR 8,7:PRINT "LMs";:COLOR 7,0:PRINT " 3 ";:COLOR 8,7:PRINT "RMs";:COLOR 7,0:PRINT " 5 ";:COLOR 8,7:PRINT "TBs";:COLOR 7,0:PRINT " 7 ";:COLOR 8,7:PRINT " LINEi";:COLOR 7,0 602 PRINT " 9 ";:COLOR 8,7:PRINT "LINEd";:COLOR 7,0:PRINT " ";CHR$(206);CHR$(205);CHR$(205);CHR$(205);CHR$(206); 605 KEY(1) ON 610 KEY(2) ON 615 KEY(3) ON 620 KEY(4) ON 625 KEY(5) ON 630 KEY(6) ON 635 KEY(7) ON 640 KEY (8) ON 645 KEY(9) ON 650 KEY (10) ON 660 KEY(11) ON 670 KEY(12) ON 680 KEY(13) ON 690 KEY(14) ON 695 ON KEY (1) GOSUB 2000 700 ON KEY (2) GOSUB 1150 705 ON KEY (3) GOSUB 2010 710 ON KEY (4) GOSUB 1740 715 ON KEY (5) GOSUB 2020 720 ON KEY (6) GOSUB 1820 725 ON KEY (7) GOSUB 2300 730 ON KEY (8) GOSUB 2800 735 ON KEY (9) GOSUB 2400 740 ON KEY (10) GOSUB 1950 750 ON KEY (11) GOSUB 1330 760 ON KEY (12) GOSUB 1360 770 ON KEY (13) GOSUB 1390 780 ON KEY (14) GOSUB 1420 790 GOSUB 1450 795 IF TEM<>255 THEN PRINT TEM 796 IF S=5 THEN S=1:GOTO 914 798 GOSUB 1900 799 GOSUB 1910 800 A$=INKEY$ 810 IF A$="" AND MID$(A$,2,1)="" THEN 800 815 GOSUB 1900 820 IF ASC(A$)=0 THEN 910 830 IF ASC(A$)=8 THEN GOSUB 940 840 IF ASC(A$)=9 THEN GOSUB 1010 850 IF ASC(A$)=13 THEN PRINT MID$(FORM$(XX(V)),H,1);:CR=1:H=LM:GOSUB 1420 860 IF ASC(A$)<32 OR ASC(A$)>254 THEN 799 880 IF TEM<>255 THEN TEM=255 885 VL=INSTR(FORM$(XX(V)),CHR$(1)) 890 PRINT A$;:MID$(FORM$(XX(V)),H)=A$:IF H<80 THEN MID$(FORM$(XX(V)),VL-1,1)=" " 900 H=H+1:GOSUB 1450 905 IF FLAG=1 THEN 799 910 IF ASC(MID$(A$,2))=82 THEN GOSUB 980 914 IF ASC(MID$(A$,2))=71 THEN V=1:T=1:B=24:S=4:GOSUB 1500 915 IF ASC(MID$(A$,2))=79 THEN T=LE-22:B=LE+1:V=B:S=4:GOSUB 1500 916 IF ASC(MID$(A$,2))=73 THEN T=T-24:B=B-24:V=B:S=4:GOSUB 1500 917 IF ASC(MID$(A$,2))=81 THEN T=T+24:B=B+24:V=T:S=4:GOSUB 1500 920 IF ASC(MID$(A$,2))=83 THEN GOSUB 1120 925 IF ASC(MID$(A$,2))=15 THEN GOSUB 1005 926 IF ASC(MID$(A$,2))=120 THEN GOSUB 2600 930 GOTO 799 940 DC=1:GOSUB 1360 941 IF TEM-1<=0 THEN BEEP:GOTO 1450 942 MID$(TEM$,TEM,1)=MID$(FORM$(XX(V)),H,1):MID$(FORM$(XX(V)),H,1)=CHR$(32):TEM=TEM-1 950 IF TEM >0 THEN 1450 980 MID$(FORM$(XX(V)),H+1)=MID$(FORM$(XX(V)),H) 990 MID$(FORM$(XX(V)),H)=" " 1000 GOTO 1125 1005 IF TEM=255 THEN PRINT MID$(FORM$(XX(V)),H,1);:H=INT((H-LM)/TB)*TB+LM-TB:GOTO 1450 1006 GOTO 1015 1010 IF TEM=255 THEN PRINT MID$(FORM$(XX(V)),H,1);:H=INT((H-LM)/TB)*TB+LM+TB:GOTO 1450 1015 TTEM=TEM+1:CL=255-TEM 1020 ROOM=RM-H+1 1030 IF ROOM>CL THEN 1100 1040 MID$(FORM$(XX(V)),H,ROOM)=MID$(TEM$,TTEM,ROOM) 1050 PRINT MID$(FORM$(XX(V)),H,ROOM-1);:IF ROOM=1 THEN PRINT " "; 1055 TTEM=TTEM+ROOM:CL=CL-ROOM 1060 CM=1:GOSUB 1600:CM=0 1070 FLAG=0 1080 GOTO 1020 1100 IF CL=0 THEN 1450 1101 MID$(FORM$(XX(V)),H,CL)=MID$(TEM$,TTEM,CL):PRINT MID$(FORM$(XX(V)),H,CL); 1110 MID$(FORM$(XX(V)),80,1)=" ":H=H+CL:GOTO 1450 1120 C=INSTR(FORM$(XX(V)),CHR$(1)) 1121 MID$(FORM$(XX(V)),H)=MID$(FORM$(XX(V)),H+1) 1122 MID$(FORM$(XX(V)),C-1,2)=" "+CHR$(1) 1125 VV=V-T+1 1130 LOCATE VV,1:PRINT MID$(FORM$(XX(V)),1,79);:LOCATE VV,H 1140 GOTO 1450 1150 GOSUB 1900 1151 CLS 1160 IF B>LE THEN LE=B 1170 T=1:B=LE 1180 IF S<>5 THEN 1188 1182 A$=CHR$(0)+CHR$(71):GOTO 605 1188 IF S=1 THEN LOCATE 12,30:COLOR 23,0:PRINT "saving the document":COLOR 7,0 1189 IF S=3 THEN LOCATE 12,30:COLOR 23,0:PRINT "backing up document":COLOR 7,0 1190 IF S=0 OR S=4 THEN LOCATE 25,42:PRINT " 2 ";:COLOR 8,7:PRINT "save";:COLOR 7,0:PRINT " 4 ";:COLOR 8,7:PRINT "quit";:COLOR 7,0:PRINT " 6 ";:COLOR 8,7:PRINT "alt";:COLOR 7,0:PRINT " 8 ";:COLOR 8,7:PRINT "reform";:COLOR 7,0 1200 IF S=0 OR S=4 THEN PRINT " 10 ";:COLOR 8,7:PRINT "print";:COLOR 7,0 1201 IF S=0 OR S=4 THEN LOCATE 25,1:PRINT "1 ";:COLOR 8,7:PRINT "LMs";:COLOR 7,0:PRINT " 3 ";:COLOR 8,7:PRINT "RMs";:COLOR 7,0:PRINT " 5 ";:COLOR 8,7:PRINT "TBs";:COLOR 7,0:PRINT " 7 ";:COLOR 8,7:PRINT " LINEi";:COLOR 7,0 1202 IF S=0 OR S=4 THEN PRINT " 9 ";:COLOR 8,7:PRINT "LINEd";:COLOR 7,0:PRINT " ";CHR$(206);CHR$(205);CHR$(205);CHR$(205);CHR$(206); 1210 IF NOT(S=1 OR S=3) THEN 1240 1211 IF S=3 OR NEWF=0 THEN 1220 1212 ON ERROR GOTO 1216 1213 KILL BFILE$ 1214 ON ERROR GOTO 0:NAME FILE$ AS BFILE$ 1215 GOTO 1220 1216 RESUME 1214 1220 IF S=1 THEN OPEN FILE$ FOR OUTPUT AS #1 1230 IF S=3 THEN OPEN BFILE$ FOR OUTPUT AS #1 1235 PRINT #1,LE 1240 FOR X=T TO B 1250 IF S=0 OR S=4 THEN LOCATE 24-B+X,1 1260 IF S=0 OR S=4 THEN IF MID$(FORM$(XX(X)),80,1)<>CHR$(2) THEN PRINT MID$(FORM$(XX(X)),1,79); 1265 ON ERROR GOTO 2500 1270 IF S=1 OR S=3 THEN IF MID$(FORM$(XX(X)),80,1)=CHR$(2) THEN PRINT #1,CHR$(2) ELSE PRINT #1,MID$(FORM$(XX(X)),1,81) 1280 NEXT X 1290 IF S=0 THEN H=LM:V=1: GOTO 580 1295 IF S=1 OR S=3 THEN PRINT#1, LM,RM,TB 1296 ON ERROR GOTO 0 1300 CLOSE #1 1305 GOSUB 1910 1310 IF S=3 OR S=4 THEN RETURN 1320 RUN 1330 GOSUB 1900 1331 IF H=80 THEN PRINT " "; ELSE PRINT MID$(FORM$(XX(V)),H,1); 1332 PRST=60*VAL(MID$(TIME$,4))+VAL(MID$(TIME$,7)) 1333 IF PRST>LPVST+1 THEN Q=1 ELSE Q=Q+1 1334 LPVST=PRST 1340 V=V-Q:D=-1 1350 GOTO 1450 1360 GOSUB 1900 1361 IF H=80 THEN PRINT " "; ELSE PRINT MID$(FORM$(XX(V)),H,1); 1362 PRST=60*VAL(MID$(TIME$,4))+VAL(MID$(TIME$,7)) 1363 IF PRST>RPVST+1 THEN Q=1 ELSE Q=Q+1 1364 RPVST=PRST 1365 IF DC=1 THEN DC=0:Q=1 1370 H=H-Q:D=-1 1380 GOTO 1450 1390 GOSUB 1900 1391 IF H=80 THEN PRINT " "; ELSE PRINT MID$(FORM$(XX(V)),H,1); 1392 PRST=60*VAL(MID$(TIME$,4))+VAL(MID$(TIME$,7)) 1393 IF PRST>UPVST+1 THEN Q=1 ELSE Q=Q+1 1394 UPVST=PRST 1400 H=H+Q:D=1 1410 GOTO 1450 1420 GOSUB 1900 1421 IF CR=1 THEN 1422 ELSE IF H=80 THEN PRINT " "; ELSE PRINT MID$(FORM$(XX(V)),H,1); 1422 PRST=60*VAL(MID$(TIME$,4))+VAL(MID$(TIME$,7)) 1423 IF PRST>DPVST+1 THEN Q=1 ELSE Q=Q+1 1424 DPVST=PRST 1425 IF CR=1 THEN CR=0:Q=1 1430 V=V+Q:D=1 1440 GOTO 1450 1450 IF V=AMAP AND H=RM THEN V=1:H=LM:B=24:T=1:S=4 1460 IF H<LM THEN H=RM-1:V=V-1 1470 IF EP=V THEN V=V+D 1480 IF V<T THEN T=T-18:B=B-18:S=4 1490 IF V>B OR (V=B AND H=RM) THEN T=T+18:B=B+18:S=4 1500 IF T<1 THEN BEEP:T=1:B=24:V=24 1510 IF B>AMAP THEN BEEP:B=AMAP:T=B-23:V=AMAP 1520 IF V>LE THEN LE=V 1530 IF S=4 THEN CLS:GOSUB 1190:S=1 1540 IF H>RM THEN H=LM:GOTO 1600 1550 IF DEL=1 THEN GOTO 1020 1560 LOCATE 25,36:PRINT USING "###";V;:PRINT " ";:PRINT USING "##";H; 1565 LOCATE 24-B+V,H 1570 COLOR 8,7:PRINT MID$(FORM$(XX(V)),H,1);:COLOR 7,0 1580 LOCATE 24-B+V,H 1585 IF DEL=2 THEN 1030 1586 GOSUB 1910 1590 FLAG=1:RETURN 1600 IF ASC(MID$(FORM$(XX(V)),RM,1))=32 OR ASC(MID$(FORM$(XX(V)),RM,1))=2 THEN V=V+1:H=LM:GOTO 1450 1610 XX=RM 1615 ON ERROR GOTO 0 1620 XX=XX-1 1630 IF XX=LM OR XX=LM-1 THEN PRINT "here":MID$(FORM$(XX(V)),80,1)=" ":V=V+1:H=1:GOTO 1460 1635 IF CM=1 AND XX<H THEN 1645 1640 IF ASC(MID$(FORM$(XX(V)),XX,1))<>32 THEN 1620 1645 IF EP=V+1 THEN EPS=2 ELSE EPS=1 1646 IF AMAP=V THEN EPS=0 1650 MID$(FORM$(XX(V+EPS)),LM,RM-XX)=MID$(FORM$(XX(V)),XX+1,RM-XX) 1660 MID$(FORM$(XX(V)),XX+1,RM-XX)=STRING$(RM-XX,32) 1670 VV=24-B+V 1680 LOCATE VV,XX+1 1685 IF V=AMAP THEN XX=XX+1 1690 PRINT MID$(FORM$(XX(V)),XX+1,RM-XX); 1700 IF S=5 THEN S=1 1705 V=V+EPS:GOSUB 1450:PRINT " ";:VV=24-B+V 1710 LOCATE VV,LM:PRINT MID$(FORM$(XX(V)),LM,RM-XX);:MID$(FORM$(XX(V)),80,1)=" " 1720 H=RM-XX+LM 1730 GOTO 1460 1740 GOSUB 1900 1741 CLS 1750 ON ERROR GOTO 1790 1760 IF MID$(FILE$,1,4)="help" OR MID$(FILE$,1,6)="secret" THEN RUN 1761 C=INSTR(FILE$,".")-1:IF FILE$=BFILE$ THEN 1770 1762 LOCATE 5,5:PRINT "WARNING everything you've changed or added to the original file ";MID$(FILE$,1,C) 1763 LOCATE 6,5:PRINT " will be lost " 1764 LOCATE 20,5:PRINT "Do you want to save your changes or additions (type Y or N) "; 1765 GOTO 1780 1770 LOCATE 5,5:PRINT "WARNING everything you've typed into the new file ";MID$(FILE$,1,C) 1771 LOCATE 6,5:PRINT " will be lost " 1772 LOCATE 20,5:PRINT "Do you want to save this file (type Y or N) "; 1780 INPUT A$:IF A$="y" OR A$="Y" THEN CLS:S=1:GOTO 1160 1781 IF A$="n" OR A$="N" THEN RUN 1790 IF ERR=53 THEN RESUME 1810 ELSE RESUME 1800 1795 CLS:GOTO 1761 1800 GOSUB 1910:S=0:CLS:GOTO 530 1810 ON ERROR GOTO 0:RUN 1820 GOSUB 1900 1830 IF MID$(FORM$(XX(V)),80,1)<>CHR$(2) THEN PRINT MID$(FORM$(XX(V)),H,1):H=1:V=V+1:GOSUB 1450:GOTO 1830 1835 MID$(FORM$(XX(V)),80,1)=" " 1836 H=1:GOSUB 1450 1840 FOR X=1 TO 6:PRINT CHR$(X);:MID$(FORM$(XX(V)),X,1)=CHR$(X):NEXT X 1850 FOR X=14 TO 27:PRINT CHR$(X);:MID$(FORM$(XX(V)),X-7,1)=CHR$(X):NEXT X 1860 FOR X=123 TO 181:PRINT CHR$(X);:MID$(FORM$(XX(V)),X-103,1)=CHR$(X):NEXT X 1865 V=V+1:GOSUB 1450 1870 IF MID$(FORM$(XX(V)),80,1)<>CHR$(2) THEN PRINT MID$(FORM$(XX(V)),H,1):V=V+1:GOSUB 1450:GOTO 1870 1874 MID$(FORM$(XX(V)),80,1)=" " 1875 FOR X=182 TO 255:PRINT CHR$(X);:MID$(FORM$(XX(V)),X-181,1)=CHR$(X):NEXT X 1876 PRINT MID$(FORM$(XX(V)),H,1);:V=V+1:GOSUB 1450 1880 GOSUB 1910 1890 GOTO 1450 1900 KEY (1) OFF:KEY (2) OFF:KEY (3) OFF:KEY (4) OFF:KEY (5) OFF:KEY (6) OFF:KEY (7) OFF: KEY (8) OFF:KEY (9) OFF:KEY (10) OFF:KEY (11) OFF:KEY (12) OFF:KEY (13) OFF:KEY (14) OFF:RETURN 1910 KEY (1) ON:KEY (2) ON:KEY (3) ON:KEY (4) ON:KEY (5) ON:KEY (6) ON:KEY (7) ON: KEY (8) ON:KEY (9) ON:KEY (10) ON:KEY (11) ON:KEY (12) ON:KEY (13) ON:KEY (14) ON:RETURN 1930 GOTO 1450 1940 RETURN 660 1950 ON ERROR GOTO 2285 1952 PRINT "normal (0) or emphasized (1) print" 1953 INPUT Z9 1954 LPRINT CHR$(27);"F":IF Z9=1 THEN LPRINT CHR$(27);"E" 1955 FOR X=1 TO LE 1960 IF X=EP THEN 1980 1970 LPRINT MID$(FORM$(XX(X)),1,79) 1980 NEXT 1985 LPRINT CHR$(27);"F" 1990 RETURN 2000 GOSUB 1900 2001 IF LM<>1 THEN LM=1:GOTO 2230 2008 LM=H:GOTO 2230 2010 GOSUB 1900 2011 IF RM<>80 THEN RM=80:GOTO 2230 2018 RM=H:GOTO 2230 2020 GOSUB 1900 2021 TB=H-LM:GOTO 2230 2230 BEEP:IF LM<1 THEN LM=1 2240 IF LM>78 THEN LM=78 2250 ON ERROR GOTO 510 2260 IF RM<3 THEN RM=3 2270 IF RM>80 THEN RM=80 2275 IF TB<1 THEN TB=1 2276 IF TB>78 THEN TB=78 2277 GOSUB 1910 2280 RETURN 2285 ON ERROR GOTO 0:RESUME 2280 2300 GOSUB 1900 2301 YY=XX(LE) 2302 IF RF=1 THEN 2310 ELSE PRINT MID$(FORM$(XX(V)),H,1); 2310 FOR X=LE-1 TO V STEP -1 2315 IF X=EP THEN XX(X+1)=XX(X-1):X=X-1:GOTO 2330 2320 XX(X+1)=XX(X) 2330 NEXT X 2335 IF LE=AMAP THEN XX(V)=YY:FORM$(XX(V))=STRING$(82,32):MID$(FORM$(XX(V)),80,2)=CHR$(2)+CHR$(1):GOTO 2345 2336 IF LE+1=EP THEN LE=LE+1 2340 XX(V)=XX(LE+1):XX(LE+1)=YY 2345 IF RF=1 THEN 2384 2350 LOCATE 24-B+V,1:PRINT STRING$(79,32); 2360 FOR X=V TO B 2362 LOCATE 24-B+X,1 2364 IF X=AMAP THEN 2370 2365 IF X=B THEN PRINT MID$(FORM$(XX(X)),1,78);:GOTO 2380 2366 IF MID$(FORM$(XX(X)),80,1)=CHR$(2) AND MID$(FORM$(XX(X+1)),80,1)=CHR$(2) THEN PRINT:GOTO 2380 2370 PRINT MID$(FORM$(XX(X)),1,79); 2380 NEXT 2384 IF LE=AMAP THEN 2390 2385 LE=LE+1 2390 GOTO 2480 2400 GOSUB 1900:YY=XX(V) 2401 IF V>LE THEN 2480 2402 IF RF=1 THEN 2403 ELSE LOCATE 24-B+V,H:PRINT " "; 2403 FOR X=V TO LE-1 2404 IF X=AMAP THEN 2420 2405 IF X=EP-1 THEN XX(X)=XX(X+2):X=X+1:GOTO 2420 2410 XX(X)=XX(X+1) 2420 NEXT X 2425 XX(LE)=YY 2430 FORM$(XX(LE))=STRING$(81,32):MID$(FORM$(XX(LE)),80,2)=CHR$(2)+CHR$(1) 2440 IF RF=1 THEN 2475 2445 LOCATE 24-B+V,1:PRINT MID$(FORM$(XX(V)),1,79); 2450 FOR X=V+1 TO B-1 2452 LOCATE 24-B+X,1 2455 IF MID$(FORM$(XX(X)),80,1)=CHR$(2) AND MID$(FORM$(XX(X-1)),80,1)=CHR$(2) THEN PRINT:GOTO 2470 2460 PRINT MID$(FORM$(XX(X)),1,79); 2470 NEXT X 2474 LOCATE 24,1:PRINT MID$(FORM$(XX(B)),1,78); 2475 LE=LE-1 2480 IF RF=1 THEN 2496 ELSE LOCATE 24-B+V,H 2490 COLOR 8,7:PRINT MID$(FORM$(XX(V)),H,1);:COLOR 7,0 2495 LOCATE 24-B+V,H 2496 GOSUB 1910:RETURN 2500 IF ERR=61 THEN KILL FILE$:ON ERROR GOTO 2505:RESUME 2502 2501 ON ERROR GOTO 0:RESUME 2502 NAME BFILE$ AS FILE$:LOCATE 20,10:PRINT "THIS DISK IS FULL, PLEASE INSERT ANOTHER BLANK, INITIALIZED DISK ";:FOR ZZ=1 TO 10000:NEXT ZZ:RESUME 1210 2505 LOCATE 20,10:PRINT "THIS DISK IS FULL, PLEASE INSERT ANOTHER BLANK, INITIALIZED DISK ";:FOR ZZ=1 TO 10000:NEXT ZZ:RESUME 1210 2510 ON ERROR GOTO 0:RESUME 1210 2600 SS=1:GOSUB 2700 2610 IF X=79 THEN RETURN ELSE L=X 2620 LOCATE 24-B+V,1:PRINT STRING$(79,32); 2630 SS=INSTR(X+1,FORM$(XX(V))," "):GOSUB 2700 2640 IF X<>79 THEN 2630 2645 IF SS=1 THEN RETURN 2650 R=79-SS:X=INT((L+R)/2+0.5):LOCATE 24-B+V,1:PRINT STRING$(X,32);MID$(FORM$(XX(V)),L,SS-L); 2660 FORM$(XX(V))=STRING$(X,32)+MID$(FORM$(XX(V)),L,80-X)+CHR$(1) 2665 GOSUB 1450:RETURN 2700 FOR X=SS TO 79 2710 IF MID$(FORM$(XX(V)),X,1)<>" " THEN RETURN 2720 NEXT X 2730 RETURN 2645 2800 OH=1:RH=LM:RF=1:FTF=1 2804 LOCATE 24-B+V,H:PRINT MID$(FORM$(XX(V)),H,1);:V=V-1 2805 GOSUB 3000:OLM=OH:OH=1 2806 V=V+1:GOSUB 3000 2807 IF OH>79 THEN IF OLM<LM THEN FTF=0 ELSE OLM=LM 'if sub olm=1 for ftf will keep a one line parpagram margin otherwise lm justifies the line 2808 IF OH>79 THEN 2810 2809 IF OLM>=OH THEN OLM=OH ELSE 2999 2810 OH=1:GOSUB 2300 2820 GOSUB 3000 2821 IF FTF=2 THEN FTF=0:IF OH<>OLM THEN 2999 2822 IF FTF=1 THEN FTF=0:CL=EN:RH=LM:OH=OLM 2823 IF RH+CL>RM THEN V=V+1:GOSUB 2300:RH=LM 2824 IF EP=V+1 THEN Z=2 ELSE Z=1 2830 MID$(FORM$(XX(V)),RH,CL)=MID$(FORM$(XX(V+Z)),OH,CL):MID$(FORM$(XX(V)),80,2)=" "+CHR$(1):RH=RH+CL:OH=OH+CL:GOTO 2820 2999 S=4:GOSUB 1500:RF=0:GOTO 1450 3000 IF EP=V+1 THEN Z=2 ELSE Z=1 3004 IF MID$(FORM$(XX(V+Z)),OH,1)=" " THEN OH=OH+1:GOTO 3000 3005 IF FTF=1 THEN 3030 3010 IF MID$(FORM$(XX(V+Z)),OH,1)=CHR$(2) THEN RETURN 2999 3020 IF MID$(FORM$(XX(V+Z)),OH,1)=CHR$(1) THEN V=V+Z:FTF=2:GOSUB 2400:V=V-Z:OH=1 3030 EN=INSTR(OH,FORM$(XX(V+Z))," "):CL=EN-OH+1:RETURN